Automated storage and retrieval system reducing bin moves by selecting multi-stock bins containing highest number of skus on workstation stock waitlist

ABSTRACT

An automated storage and retrieval system stores multi-stock bins each holding different stock-keeping units (SKUs). Records dynamically track which SKUs are in each bin. A controller tracks a stock waitlist indicating quantities of SKUs still required to be delivered to a workstation in order to fulfil current orders assigned to the workstation. When a robot is available, the controller selects a multi-stock bin that has a highest number of unique ones of the required SKUs indicated on the stock waitlist and commands the robot to fetch and deliver the selected bin to the workstation. For new orders, the controller may determine if direct assignment can be done to a workstation without additional bins being scheduled. For other pending orders, the controller may assume each pending order is assigned to the workstation and then pick the order that would require a lowest number of bins to be delivered to the workstation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a national stage application of the PatentCooperation Treaty (PCT) international application titled “AUTOMATEDSTORAGE AND RETRIEVAL SYSTEM REDUCING BIN MOVES BY SELECTING MULTI-STOCKBINS CONTAINING HIGHEST NUMBER OF SKUS ON WORKSTATION STOCK WAITLIST”,international application number PCT/CA2020/051641, filed in theReceiving Office of the Canadian Patent and Trademark Office on Nov. 30,2020, which claims the benefit of priority of U.S. ProvisionalApplication No. 62/943,049 filed Dec. 3, 2019 and U.S. ProvisionalApplication No. 63/118,860 filed Nov. 27, 2020, which are bothincorporated herein by reference.

BACKGROUND OF THE INVENTION (1) Field of the Invention

The invention pertains generally to an automated storage and retrievalsystem (ASRS) for warehouses in e-commerce applications, retail stockreplenishment, supply chain management, inventory management and othersimilar fields. More specifically, the invention relates to an automatedstorage and retrieval system that dynamically selects retrieval ofoptimal multi-stock bins for delivery to a picking workstation in orderto maximize items picked per bin presentation at the workstation.

(2) Description of the Related Art

In typical order-picking systems operating according to the principle ofgoods-to-picker (G2P), bins containing stock are fetched from awarehouse and delivered to one of a plurality of picking workstations.Employees of the warehouse remain at their respective workstations andpick items from the bins in order to work toward fulfilling orders.

Because an order may include multiple unique stock-keeping units (SKUs)that are not stored together in a same source bin in the warehousecombined with the fact that traditional systems cannot deliver differentbins just in time to workstations right when they are needed, an orderis often not completely processed at a single picking station. Instead,a plurality of bins required to fulfil the order are fetched todifferent workstations in parallel and respective sub-orders for pickingindividuals one of the required SKUs are sent to the variousworkstations. In this way, different SKUs for a single order are pickedat different workstations and are thereafter sorted into a singlepackage for shipping. Furthermore, many traditional systems store only asingle SKU per bin and consequently wait until multiple items frommultiple orders can be batch picked together to increase efficiency.This increases each order processing time and relies on a downstreamsortation system to buffer all orders until all line items arecollected. The expediency of order assembly is dictated by efficiency,rather than order priority or hold time.

To increase efficiency, the orders may be processed in sequential waves,where each wave includes a batch of orders, such as sixty customerorders, split into sub-orders and sent to the workstations for pickingduring the wave. The picked items from all workstations during a singlewave are sorted into their respective completed orders ready for packingand shipping. The batch size of the waves is typically dependent on thesortation system as the sortation system will have a limit on the numberof distinct finished-order groups. The sortation may be done in anautomatic fashion by placing all picked articles from the workstationsduring a single wave onto a conveyer belt. The conveyer belt moves thevarious picked items to an automated sortation system, which physicallyarranges the individual items into groups that match the customer ordersand are thereby ready for packing and shipping to customers. After onewave of orders finishes, another wave starts.

As more and more people shop online, the number of picking orders to beprocessed each day in e-commerce fulfilment centers is steadily rising.However, the orders are often smaller in terms of items per orderdespite the total numbers of ordered SKUs increasing each day. Manysmaller orders to be processed with a broad spectrum of articles meansmany bin retrievals are required to pick the items. Particularly in thefield of e-commerce, the above-described typical order-picking systemmay not be able to keep up with customer orders or meet customerdemands.

E-commerce orders placed over the Internet must take place within arelatively short period of time in order to be commercially competitive.Because of the large number of SKUs from which an order may be selected,the inventory warehouse may have a large footprint. Bin retrievals, evenwhen automated by robots, take a relatively long time to perform,slowing the ability of the order picking system in finishing orders of aparticular batch of orders. If new orders start to arrive faster thanthe automated storage and retrieval system can process the current batchof orders, the system will fall behind and customer expectations fordelivery times of the new orders will not be met.

Even in the event that the system does not fall behind, theabove-described system may still encounter problems. For example,processing pending orders in waves where an entire batch of orders(e.g., sixty orders) in the wave needs to be completed before any newpending orders can be processed negatively impacts the system's abilityto handle rush orders. Each wave takes time to complete. In the event arush order arrives after a wave of orders has been sent to the pickingworkstations, the system either needs to wait for the orders in thecurrent wave to be fully processed, or the current wave needs to becanceled. Either option greatly reduces overall system performance.

BRIEF SUMMARY OF THE INVENTION

According to an exemplary embodiment of the invention there is disclosedan automated storage and retrieval system. The system includes a binstorage facility having a plurality of bins physically stored therein, aplurality of the bins in the bin storage facility being multi-stock binsthat hold stock for a plurality of different stock-keeping units (SKUs).The system further includes a data storage device having a plurality ofrecords electronically stored therein, the records indicating aparticular one or more stock-keeping units (SKUs) for which there isstock in each bin. The system further includes a workstation at which apicking agent picks stock from one or more bins of the bin storagefacility delivered to the workstation in order to fulfil one or morecurrent orders assigned to the workstation. The system further includesa robot for fetching one or more bins from the bin storage facility anddelivering the one or more bins to the workstation. The system furtherincludes a controller configured to track a stock waitlist for theworkstation, the stock waitlist indicating quantities of one or morerequired stock-keeping units (SKUs) still required to be delivered tothe workstation in order to fulfil the one or more current ordersassigned to the workstation. The controller is further configured toselect a bin of the bin storage facility as a selected bin, the selectedbin being a multi-stock bin that according to the records contains stockfor a highest number of unique ones of the required stock-keeping units(SKUs) indicated on the stock waitlist. The controller is furtherconfigured to send a command to the robot to fetch the selected bin fromthe bin storage facility and deliver the selected bin to theworkstation. The controller is further configured to update the stockwaitlist for the workstation by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the selected bin.

According to an exemplary embodiment of the invention there is discloseda controller of an automated storage and retrieval system. Thecontroller includes one or more processors that are configured byexecuting software loaded from a storage medium to store a plurality ofrecords indicating a particular one or more stock-keeping units (SKUs)for which there is stock in each bin of a bin storage facility having aplurality of bins physically stored therein, a plurality of the bins inthe bin storage facility being multi-stock bins that hold stock for aplurality of different stock-keeping units (SKUs). The processors arefurther configured to track a stock waitlist for a workstation, thestock waitlist indicating quantities of one or more requiredstock-keeping units (SKUs) still required to be delivered to theworkstation in order to fulfil the one or more current orders assignedto the workstation, the workstation being a location at which a pickingagent picks stock from one or more bins of the bin storage facilitydelivered to the workstation in order to fulfil one or more currentorders assigned to the workstation. The processors are furtherconfigured to select a bin of the bin storage facility as a selectedbin, the selected bin being a multi-stock bin that according to therecords contains stock for a highest number of unique ones of therequired stock-keeping units (SKUs) indicated on the stock waitlist. Theprocessors are further configured to send a command to a robot to fetchthe selected bin from the bin storage facility and deliver the selectedbin to the workstation. The processors are further configured to updatethe stock waitlist for the workstation by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the selected bin.

According to an exemplary embodiment of the invention there is discloseda controller of an automated storage and retrieval system. Thecontroller includes means for storing a plurality of records indicatinga particular one or more stock-keeping units (SKUs) for which there isstock in each bin of a bin storage facility having a plurality of binsphysically stored therein, a plurality of the bins in the bin storagefacility being multi-stock bins that hold stock for a plurality ofdifferent stock-keeping units (SKUs). The controller further includesmeans for tracking a stock waitlist for a workstation, the stockwaitlist indicating quantities of one or more required stock-keepingunits (SKUs) still required to be delivered to the workstation in orderto fulfil the one or more current orders assigned to the workstation,the workstation being a location at which a picking agent picks stockfrom one or more bins of the bin storage facility delivered to theworkstation in order to fulfil one or more current orders assigned tothe workstation. The controller further includes means for selecting abin of the bin storage facility as a selected bin, the selected binbeing a multi-stock bin that according to the records contains stock fora highest number of unique ones of the required stock-keeping units(SKUs) indicated on the stock waitlist. The controller further includesmeans for sending a command to a robot to fetch the selected bin fromthe bin storage facility and deliver the selected bin to theworkstation. The controller further includes means for updating thestock waitlist for the workstation by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the selected bin.

According to an exemplary embodiment of the invention there is discloseda non-transitory processor-readable medium comprising processorexecutable instructions that when executed by one or more processorscause the one or more processors to store a plurality of recordsindicating a particular one or more stock-keeping units (SKUs) for whichthere is stock in each bin of a bin storage facility having a pluralityof bins physically stored therein, a plurality of the bins in the binstorage facility being multi-stock bins that hold stock for a pluralityof different stock-keeping units (SKUs); track a stock waitlist for aworkstation, the stock waitlist indicating quantities of one or morerequired stock-keeping units (SKUs) still required to be delivered tothe workstation in order to fulfil the one or more current ordersassigned to the workstation, the workstation being a location at which apicking agent picks stock from one or more bins of the bin storagefacility delivered to the workstation in order to fulfil one or morecurrent orders assigned to the workstation; select a bin of the binstorage facility as a selected bin, the selected bin being a multi-stockbin that according to the records contains stock for a highest number ofunique ones of the required stock-keeping units (SKUs) indicated on thestock waitlist; send a command to a robot to fetch the selected bin fromthe bin storage facility and deliver the selected bin to theworkstation; and update the stock waitlist for the workstation byremoving each of the required stock-keeping units (SKUs) for which thereis sufficient stock included in the selected bin.

According to an exemplary embodiment of the invention there is discloseda method of controlling a robot in an automated storage and retrievalsystem. The method includes storing a plurality of records indicating aparticular one or more stock-keeping units (SKUs) for which there isstock in each bin of a bin storage facility having a plurality of binsphysically stored therein, a plurality of the bins in the bin storagefacility being multi-stock bins that hold stock for a plurality ofdifferent stock-keeping units (SKUs). The method further includestracking a stock waitlist for the workstation, the stock waitlistindicating quantities of one or more required stock-keeping units (SKUs)still required to be delivered to a workstation in order to fulfil theone or more current orders assigned to the workstation, the workstationbeing a location at which a picking agent picks stock from one or morebins of the bin storage facility delivered to the workstation in orderto fulfil one or more current orders assigned to the workstation. Themethod further includes selecting a bin of the bin storage facility as aselected bin, the selected bin being a multi-stock bin that according tothe records contains stock for a highest number of unique ones of therequired stock-keeping units (SKUs) indicated on the stock waitlist. Themethod further includes sending a command to a robot to fetch theselected bin from the bin storage facility and deliver the selected binto the workstation. The method further includes updating the stockwaitlist for the workstation by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the selected bin.

In some embodiments, a warehouse controller tracks the contents ofmulti-SKU bins of inventory in a storage facility and continuallycalculates the best incoming orders to group together and assign todifferent picking workstations as conditions change and new orders arereceived that impact the processing priority. The controller furthercontinually calculates next bins that should be retrieved as robotsbecome available to increase items picked per bin presentation at eachworkstation.

According to an exemplary embodiment of the invention there is discloseda system for order batching and bin selection for optimizing itempicking from an automated storage and retrieval system (ASRS). Thesystem delivers bins to workstations just in time, grouped by order, inspecific sequences, thereby executing discrete, just in time, batchorder picking using multi-order workstations, advanced bin selection,and advanced order batching. The system optimizes the items picked perbin presentation (IPP) with or without the need for sortation systems.The system comprises a workstation including a pick port for presentingbins selected for fulfilling multi-orders (without the need forsortation) and single orders. In an embodiment, the workstation is amulti-order workstation. The workstation allows numerous multi-orders tobe opened and grouped together to achieve the highest IPP, whileappending complimentary single orders that increase the IPP. Eachmulti-order location includes a single tote to pick to a single order,which is assigned to the single tote. When a multi-order is assembled,the tote is closed and conveyed to packing, with a new order beingassigned to the workstation to be assembled.

In some embodiments, the system increases the number of items pickedevery time a robot presents a bin to a workstation by expanding theorder processing scope to include:

-   -   a) Order batching IPP gains, where the order processing queue        and order assignment are prioritized to workstations considering        the IPP gain of each order in the queue when processing        alongside open orders at each workstation; and    -   b) Bin selection IPP gain, where bins are selected to fulfill an        order based on maximum IPP gains by considering all open orders        at a workstation and the contents of all bins in the ASRS.

In some embodiments, the system uses dynamic feedback loops toconstantly verify the state of inventory in the bins to ensure that themost optimal bins are selected to maximize IPP at all times. In someembodiments, the IPP maximization is only done at certain times. Theadvanced bin selection algorithm works on both picking orders anddecanting inventory into the system. Dynamic feedback loops are alsoused to constantly measure the effectiveness of opening each order inthe processing queue at each workstation, to ensure that new ordersopened at each workstation are producing the highest IPP when pickedalongside orders already being worked on at each workstation.

In some embodiments that only implements bin selection, orders areassigned to workstations by priority. In these embodiments, the systemassigns orders to workstations to ensure that the highest priority itemsare processed first always.

In some embodiments, for advanced order batching and bin selection, thesystem is used during order assignment to a workstation to maximizeefficiency/performance while meeting service level agreements dictatedby priority and hold time. In these embodiments, IPP, hold time, andpriority are all considered to varying degrees, where each can beweighed depending on customer preference.

In some embodiments, the controller selects a combination of bins thattogether will fulfill orders assigned to a workstation with the minimumnumber of bin presentations to the workstation. In other words, thecontroller dynamically selects and commands robots to retrieve bins thatwill whittle down the stock waitlist for the workstation with minimumnumber of bins.

In some embodiments, the system does not utilize a batch window orwaves. Instead, a warehouse controller combines all orders into a singlepending order pool for waveless processing where the most favorableorder is processed when an order put-spot becomes available at aworkstation and/or a robot is available for bin deliver to theworkstation. In some embodiments, the system maximizes items picked perbin presentation to increase worker productivity, while minimizing robotworkloads allowing waveless order processing (host system sends ordersto the system as they are received, as opposed to releasing them inwaves). In some embodiments, the system's efficiency actually increaseswhen the pending order queue is larger, which means the efficiency ofthe system increases as the system gets more backed up with pendingorders awaiting processing.

In some embodiments, the system eliminates the sorting process bypicking directly to the order location such as to a completed ordertote.

These and other advantages and embodiments of the present invention willno doubt become apparent to those of ordinary skill in the art afterreading the following detailed description of preferred embodimentsillustrated in the various figures and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be described in greater detail with reference to theaccompanying drawings which represent preferred embodiments thereof:

FIG. 1 shows a high-level block diagram of an automated storage andretrieval system (ASRS) according to an exemplary embodiment of theinvention.

FIG. 2 illustrates a perspective view of one of the picking workstationsof FIG. 1 according to an exemplary embodiment.

FIG. 3 illustrates the workstation of FIG. 2 immediately after arrivalof a robot presenting a bin for picking.

FIG. 4 illustrates a perspective view of the workstation of FIG. 3 afterthe picking agent has followed the instructions shown on the displays topick some items.

FIG. 5 illustrates a perspective view of the workstation after thepicking agent has removed the finished tote and placed it on theconveyer belt as per the instructions shown in FIG. 4 .

FIG. 6 illustrates a perspective view of the workstation after thepicking agent has placed a new tote in the available put-spot as per theinstructions shown in FIG. 5 .

FIG. 7 illustrates a perspective view of a bin storage facility having aplurality of picking workstations around its perimeter according to anexemplary embodiment.

FIG. 8 illustrates plan view of an order fulfillment system according toan exemplary embodiment of the present invention.

FIG. 9 illustrates a block diagram of the warehouse controller of FIG. 1according to an exemplary embodiment.

FIG. 10 illustrates a block diagram of a workstation controlleraccording to an exemplary embodiment.

FIGS. 11 to 14 illustrate examples of different multi-SKU bins that maybe stored in the bin storage facility according to differentembodiments.

FIG. 15 shows a flowchart of a method of calculating the next bin tableand the pending order table according to an exemplary embodiment.

FIG. 16 shows a flowchart of a method of determining a minimum bin setaccording to an exemplary embodiment.

FIG. 17 shows a flowchart describing how one of the pending orders isselected and assigned to a workstation when a workstation has anavailable put-spot according to an exemplary embodiment.

FIG. 18 shows a flowchart describing how a bin is selected for robotretrieval after a robot becomes available according to an exemplaryembodiment.

FIG. 19 shows a flowchart describing how a new order may be directlyassigned to a workstation because the order be fulfilled at thatworkstation without requiring any additional bins to be moved to theworkstation according to an exemplary embodiment.

FIG. 20 illustrates a perspective view of dual put-spot pickingworkstations according to an exemplary embodiment.

FIG. 21 illustrates plan view of an order fulfillment system includingan automated sortation system for sorting multi-SKU totes from theworkstation of FIG. 20 according to an exemplary embodiment of thepresent invention.

DETAILED DESCRIPTION

FIG. 1 shows a high-level block diagram of an automated storage andretrieval system (ASRS) 100 according to an exemplary embodiment of theinvention. The system 100 includes a warehouse controller 102 coupled toan order system 104 via an external network 106 such as the Internet.The warehouse controller 102 is further coupled to one or more robots108 and one or more picking workstations 110 via a local area network(LAN) 112 such as a wired and/or wireless network installed at thewarehouse. Each of the robots 108 is for fetching one or more bins froma bin storage facility 114 and delivering the one or more bins to aparticular one of the workstations 110. Picking agents such as employeesat each workstation 110 pick stock from the bins delivered to theworkstation 110 in order to fulfil one or more current orders assignedto the workstation 110.

FIG. 2 illustrates a perspective view of one of the picking workstations110 of FIG. 1 according to an exemplary embodiment. In this embodiment,the workstation 110 is positioned along a bench 200 that includes apicking port 202 passing through to a track under the bench 200. Therobots 108 run along the track and present bins for presentation to apicking agent at the workstation 110 via the port 202. A display screen204 with optional integrated speakers provides audiovisual instructionsto the picking agent on which items to pick. The workstation 110 furtherincludes a put-wall 206 that is formed by a plurality of twelve “multi”put-spots 208 with totes 210 in this embodiment. A plurality of unusedtotes 210 are located below the put-wall 206 ready for later usage bythe picking agent when one of the twelve put-spots 208 has a completedorder. Each put-spot 208 includes an electronic display 212 along with abutton 214 with integrated light. The button 214 lights up when actionis required by the picking agent related to that put-spot 208, and theelectronic display 212 provides additional instructions such as thenumber of items to place in the tore 210.

Continuing the description of the elements of the workstation 110, ahandheld wireless scanner device 216 is provided for scanning barcodes218 on the totes. Each tote 210 has a unique barcode 218 in thisembodiment. Additionally, there is an additional “singles” put-spot 220on the bench in this embodiment.

In this embodiment, customer orders are picked directly to a single tote210 and do not require additional sorting after the workstation 110. Inother words, if a customer order contains multiple SKUs, stock for thesedifferent SKUs will all be picked at a single workstation 110 and allSKUs of the completed customer order will be gathered as a group in a“multi” tote 210 right at the workstation 110. The twelve put-spots 208on the put-wall 206 in this embodiment correspond to twelve customerorders that each have multiple SKUs. These are referred to herein asmulti-SKU orders. The singles put-spot 220 on the bench in thisembodiment corresponds to a plurality of single-SKU orders, where eachsingle-SKU order only include a single SKU in some quantity as orderedby a customer. Although items for different customer orders may becombined in a single tote 210 at the singles put-spot 220, the singleorders do not require sorting either and go directly to packing sinceall items for each customer package are contained in the tote 210.

FIGS. 3 to 6 show a sequence of perspective views illustrating anexample picking process at the workstation 110 of FIG. 2 according to anexemplary embodiment. In particular, FIG. 3 illustrates the workstation110 immediately after arrival of a robot 108 presenting a bin 300 forpicking. As shown, the bin 300 is lifted by the robot 108 through theport 202 such that the picking agent can pick out items of stock throughthe top of the bin 300. The bin 300 in this example is subdivided intotwelve individual compartments 302, and various different stockinventory is held in each compartment 302. In this example, the bin 300retrieved by the robot 108 and brought to the workstation 110 is amulti-stock bin 300 that holds therein stock for a plurality ofdifferent product SKUs.

The display screen 204 instructs the picking agent on the quantity andshape of the items 304 to be picked first from the bin 300, and theput-spot displays 212 and buttons 214 on two specific put-spots 208 a,bwhere the items are to be deposited are shown on the put-wall 206. Otherindications such as lights and/or audio instructions may also instructthe picking agent on the item to pick and location to put. In thisexample, the display screen 204 instructs the user to pick two of afirst item 304 from the bin 300 and the put location displays 212instruct the user to put one of the items into a first tote 210 a andanother of the items into a second tote 210 b. When the picking agenthas placed an item 304 in a tote 210, the picking agent may press thebutton 214 on that tote 210's pick-spot 208 in order to provide feedbackto the workstation 110 that the pick and put has been performed. Othersensors may be included in the workstation 110 to verify the pick andput are done properly in other embodiments.

FIG. 4 illustrates a perspective view of the workstation 110 after thepicking agent has followed the instructions shown on the displays 204,212 of FIG. 3 . In particular, the two instances of the first item 304are picked and placed in their respective put-spot totes 210 a,b. Boththe buttons 214 on said put-spots 208 a,b have been pressed and thedisplay screen 204 has thus moved on to a next instructions. In thiscase, one of the multi-SKU orders is finished and the display screen 204instructs the user to find the put location 208 displaying an “F” icon(representing “finished”) and move that tote 210 to the conveyer beltsystem for transport to a packaging stage. As shown, the put-spotdisplay 212 on the finished put location indicates the “F” icon and thatspot's button 214 is illuminated to help the user find the appropriatetote 210 b. The user then physically lifts the tote 210 b from itsput-spot 208 b and places the tote 210 b on a conveyer belt adjacent theworkstation 110. These actions inform the workstation 110 controllerand/or warehouse controller 102 that the completed customer order is onits way in the designated tote 210 b to the packaging department forshipping to the appropriate destination address as per the order.

FIG. 5 illustrates a perspective view of the workstation 110 after thepicking agent has removed the finished tote 210 b and placed it on theconveyer belt as per the instructions shown in FIG. 4 . The user thenpicks an unused tote 210 from the supply below the put-wall 206, scansthe barcode 218 of the unused tote 210, places this new tote 210 intothe empty put-spot 208 b, and presses the illuminated button 214 forthat put-spot 208 b. These actions inform the workstation 110 controllerand/or warehouse controller 102 that the workstation 110 now has anavailable “multi” put-spot 208 ready to accept another multi-SKU orderfrom the pending orders awaiting processing.

FIG. 6 illustrates a perspective view of the workstation 110 after thepicking agent has placed a new tote 210 in the available put-spot 208 bas per the instructions shown in FIG. 5 . Upon the picking agentpressing the put-spot button 214, the controller 102 dynamically selectsand assigns a new multi-SKU order to the workstation 110. The tote 210at this put-spot 208 b now corresponds to the new multi-SKU orderassigned to the workstation 110. The picking agent then continuespicking items from the bin 300 as per the instructions on the frontdisplay device 204 and tote displays 212.

FIG. 7 illustrates a perspective view of a bin storage facility 114having a plurality of picking workstations 110 around its perimeteraccording to an exemplary embodiment. In this embodiment, the binstorage facility 114 is a three dimensional storage and retrieval gridstructure that contains cells organized in rows and columns within thegrid structure. An example of such a grid structure is illustrated inU.S. Pat. No. 10,336,540 entitled, “STORAGE AND RETRIEVAL SYSTEM”, whichis incorporated herein by reference. A plurality of picking workstations110, each having the structure and operation as described above withreference to FIGS. 2 to 6 , are positioned around a lower perimeter ofthe bin storage facility 114.

FIG. 8 illustrates plan view of an order fulfillment system 800according to an exemplary embodiment of the present invention. The orderfulfillment system 800 includes the automated storage and retrievalsystem 100 of FIG. 1 as a first stage, along with a conveyer belt system802 for moving picked items from the workstations 110 to a packing stage804 and then a shipping stage 808. As illustrated, the bin storagefacility 114 has picking workstations 110 on two sides, and the conveyerbelt system 802 is adjacent the picking stations 110 such that pickingagents 808 working in the stations 110 can easily place completed totes210 onto the conveyer belt system 802. The conveyer belt system 802transports the totes 210 to one of a plurality of packing stations 810where workers pack the items into parcels such as padded envelopes andboxes, and add address labels to the outsides of the parcels. Theparcels are then placed back onto the conveyer belt system 802 wherethey are automatically transported to the shipping stage 806. Theconveyer belt system 802 may be a double decker conveyer having a toplevel to deliver the totes to the packing stations and a lower levelthat conveys the parcel to shipping. At the shipping stage 806, theparcels are loaded into appropriate shipping containers 812 and vehiclesfor transport externally to customers. Examples of shipping containersinclude gaylords and other perforated boxes, and examples of vehiclesinclude courier and mail trucks.

Beneficially, the automated storage and retrieval system 100 in thisembodiment picks directly to customer order totes 210 that can eachcontain all items needed for one or more customer orders such that theorder(s) can be packaged and shipped to customers. There is no“sortation” stage in the fulfillment system layout 800 illustrated inFIG. 8 thereby saving floor space and speeding order processing.Sortation is instead “built-in” to the picking process at eachworkstation 110 because multi-SKU order totes 210 are completed at eachworkstation 110 and then passed to packaging 804 without requiring anintermediate sortation stage. Furthermore, in this embodiment, thepicking process is waveless meaning that pending orders can be added toany available workstation 110 at any time. Pending orders can berearranged in order based on priority at any time and there are nobatches that need to be managed in separate waves. Thus, efficiency andflexibility are both increased in comparison with the typicalorder-picking systems described in the background section,

FIG. 9 illustrates a block diagram of the warehouse controller 102 ofFIG. 1 according to an exemplary embodiment. The warehouse controller102 is a computer server including one or more processors 900. The oneor more processors 900 may be included in a central processor unit (CPU)of the computer server acting as the warehouse controller 102. In thefollowing description the plural form of the word “processors” will beutilized as it is common for a CPU of a computer server to have multipleprocessors (sometimes also referred to as cores); however, it is to beunderstood that a single processor 900 may also be configured to performthe described functionality in other implementations.

The processors 900 are coupled to one or more storage devices 902, oneor more network interfaces 904, and a clock chip 906. The one or morestorage devices 902 include a plurality of software instructions 908such as software modules for execution by the processors 900 along withdata 910 utilized by the processors 900 when executing the software 908.The data 910 is organized into a database having a plurality of tablesin this embodiment, and examples of the tables include a bin-to-SKU 912,a pending orders table 914, a workstation-to-order (“WS-to-order”) table916, a workstation-stock-waitlist table 918, and a next bin data table920. These tables are merely exemplary for this embodiment and otherdata 922 may also be stored as needed in other embodiments. In thisembodiment, a relational database is utilized to store the required data910; however, the terms “database” and “tables” as utilized in thisdescription is meant to refer to any stored collection of organized data910.

The network interface(s) 904 provide communications ability from thewarehouse controller 102 to other elements in the automated storage andretrieval system 100 and order fulfillment system 800 in general. Inparticular, the network interfaces 904 couple the warehouse controller102 to an external network 106 such as the Internet for communicatingwith an order system 104. New pending orders are received in thisembodiment from the order system 104, which may be run by an onlinestore or other retailer that receives orders from customers via ane-commerce website. The network interfaces 904 are further coupled to afirst virtual local area network (VLAN-robots) 924 designed for therobots 108. In this embodiment, the warehouse controller 102 dispatchescommands to the robots 108 via VLAN-robots 924. The network interfaces904 are coupled to a second virtual local area network(VLAN-workstations) 926 designated for the workstations 110. In thisembodiment, the workstations 110 are themselves computer-controlled andhave their own processors 1002, described below with reference to FIG.10 . The warehouse controller 102 communicates with the workstations 110via VLAN-workstations 926 in order to assign orders to the workstations110 and to receive notifications from the workstations 110 when ordersare picked and placed onto the conveyer belt system 802. Lastly, thenetwork interfaces are coupled to the conveyer belt system 802 via aVLAN-conveyer 928 in order send commands to actuate different parts ofthe conveyer belt system 802 to move completed totes 210 from thepicking workstations 110 to the packaging stations 810 and then to moveparcels from packaging stations 810 to the shipping stage 812 (see FIG.8 ).

FIG. 10 illustrates a block diagram of a workstation controller 1000according to an exemplary embodiment. Similar to the warehousecontroller 102, the workstation controller is a computer serverincluding one or more processors 1002. Again, the plural form of theword “processors” will be utilized; however, it is to be understood thata single processor 1002 may also be configured to perform the describedfunctionality in other implementations.

In this embodiment, the processors 1002 of the workstation controller1000 are coupled to one or more storage devices 1004, one or morenetwork interfaces 1006, and one or more other communication interfaces1008. The storage devices 1004 store software instructions 1010 forexecution by the processors 1002 along with data 1012 utilized by theworkstation controller 1000 including an assigned orders table 1014, anorder-to-SKU table 1016, an item-for-picking instructions table 1018,and other data 1020 as required. The network interfaces 1006 are coupledvia the VLAN-workstations 926 back to the warehouse controller 102. Theother communication interfaces 1008 may include wired interfaces such asuniversal serial bus (USB) transceivers and wireless interfaces such asBluetooth transceivers to thereby couple the processors 1002 to thedisplay devices utilized to provide instructions to the picking agentand other equipment at the workstation 110 such as one or more lightemitting diodes (LEDs) integrated into the buttons 214 of the put-spots208 on the put-wall 206, one or more put-spot buttons 214, and thewireless barcode scanner 216.

FIGS. 11 to 14 illustrate examples of different multi-SKU bins 300 thatmay be stored in the bin storage facility 114 according to differentembodiments. As explained further in the following, the warehousecontroller 102 in this embodiment actively assigns orders toworkstations 110 in order maximize items picked per bin presentation atthe workstation 110. This controller takes advantage of storing stock ofdifferent SKUs across a wide variety of bins 300. In some embodiments,the kitting of the bins 300 (i.e., adding new inventory to the bins 300)is done in a random fashion such that product SKUs are randomlydistributed throughout bins 300 in the bin storage facility 114. In someembodiments, the kitting is prescriptive such that affinities are storedtogether meaning that SKUs that are often ordered together by customersare stored in a same bin. However, as explained in the backgroundsection, e-commerce orders are often small and there may be no knownaffinity for many orders. Thus, random inventory storage is one kittingtechnique utilized for a least of portion of the inventory in thestorage facility in some embodiments.

To facilitate easy picking, the multi-SKU bins 300 may be sub-dividedinto any number of separate compartments 302 of any desired shape. FIGS.11 to 14 show some examples. As illustrated, stock for different typesof products (i.e., different SKUs) are stored in a same bin. In someembodiments, each compartment 302 holds stock for a different SKU;however, this is not a requirement and a same compartment 302 in the bin300 may hold stock for different SKUs.

The bin-to-SKU table 912 holds electronics records indicating aparticular one or more SKUs for which there is stock in each bin alongwith a quantity of said stock. A very simple example of a portion of abin-to-SKU table 912 is as a follows:

TABLE 1 Example bin-to-SKU table 912 Bin identifier (ID) SKU QuantityBin55 SKU-86572 (toothbrush) 100 SKU-82145 (camera) 3 SKU-65896(speaker) 1 Bin57 SKU-86572 (toothbrush) 150 SKU-58741 (toy) 10

Other columns may be included as desired such as having aSKU-to-compartment column specifying the compartment of the bin in whichthe SKU is stored.

As shown, both Bin55 and Bin57 are multi-SKU bins in this example. Bin55includes stock for three different SKUs including stock for a toothbrushtype, a camera type and a speaker type. Likewise Bin57 includes stockfor two different SKUs including stock for the same toothbrush type asstored in Bin55 and a toy that is not stored in Bin55. In thisembodiment, the warehouse controller 102 tracks a stock waitlist 918 foreach workstation 110. The stock waitlist 918 for a workstation 110indicates quantities of one or more SKUs still required to be deliveredto the workstation 110 in order to fulfil the current orders assigned tothe workstation 110. In this embodiment, there is a separate stockwaitlist 918 for each workstation 110.

To maximize the items picked per bin presentation and thereby minimizethe number of bin 300 moves that need to be performed by the robots 108,the warehouse controller 102 dynamically selects a multi-stock bin 300that, according to the bin-to-SKU table 912 records, contains stock fora highest number of unique SKUs indicated on the stock waitlist 918. Asa simple example, if a particular workstation 110 has a first pluralityof orders assigned to it that require the delivery of stock forSKU-86572 (toothbrush) and SKU-82145 (camera), the warehouse controller102 dynamically selects Bin55 for delivery to the workstation 110. Inanother example, if the particular workstation 110 instead has a secondplurality of orders assigned to it that require the delivery of stockfor SKU-86572 (toothbrush) and SKU-58741 (toy), the warehouse controller102 dynamically selects Bin57 for delivery to the workstation 110.

In this embodiment, the warehouse controller 102 further dynamicallyselects orders for assignments to each workstation 110 taking intoaccount the stock waitlists 918 for each workstation 110 in conjunctionwith the desired SKUs for each order. Again, as a simple example, if aparticular workstation 110 as a first plurality of orders assigned to itthat require the delivery of stock for SKU-86572 (toothbrush), thewarehouse controller 102 may dynamically assign one or more pendingorders for SKU-82145 (camera) and SKU-65896 (speaker), or one or morepending orders for SKU-58741 (toy) to the same particular workstation110. This is because, as per the above bin-SKU-table shown in Table 1,only a single bin, i.e., Bin55, will need to be delivered to theworkstation 110 in order to pick combinations of SKU-86572 (toothbrush)with SKU-82145 (camera) and SKU-65896 (speaker); and only a single bin,i.e., Bin57, will need to be delivered to the workstation 110 in orderto pick combinations of SKU-86572 (toothbrush) with SKU-58741 (toy).

In short, the warehouse controller 102 in this embodiment makes at leasttwo types decisions:

-   -   A. For each pending order, determine which workstation 110 to        assign the pending order such that the number of bins 300        required to be delivered to workstation 110 is minimized; and    -   B. For each available robot 108, determine a particular bin 300        of the bin storage facility 114 to retrieve and a particular        workstation 110 to deliver it to such that the number of bins        300 required to be delivered to the workstation 110 is        minimized.

As a typical bin storage facility 114 will contain a huge number of bins300 that have constantly changing SKU numbers and continually arrivingnew orders to be processed, in this embodiment, the warehouse controller102 continually updates a pending orders table 914 and a next bin table920 that together provide information the controller 102 utilizes tomake fast decisions whenever there is a new order ready to assign and/oran available robot 108 to command.

A simplified example of a next bin table 920 according to thisembodiment is as follows:

TABLE 2 Example next bin table 920 Next bin Stock Pending PendingPending Workstation waitlist order 1 order 2 order 3 Workstation-1 Bin53Bin53 Bin32 Bin78 Workstation-2 Bin902 Bin102 Bin902 Bin11 Workstation-3Bin12 Bin12 Bin44 Bin11

Each row of the next bin table 920 represents options for a particularworkstation 110. Taking the first workstation 110 (Workstation-1) as anexample, if no new pending order is assigned to the workstation 110, thenext bin that should be delivered to the workstation 110 according tothe current stock waitlist 918 of the workstation 110 is Bin53.Alternatively, if pending order 1 is assigned to the first workstation110, the next bin that should be delivered is still Bin53. The remainingcolumns are the next bins that should be delivered to the workstation110 assuming each of the other pending orders are instead assigned tothe workstation 110. Further description of how the controller 102determines these next bins values for each column in the table isprovided below with reference to the flowchart of FIG. 15 .

A simplified example of a pending orders table 914 according to thisembodiment is as follows:

TABLE 3 Example pending orders table 914 Workstation-1 Workstation-2Workstation-3 Pending order weight weight weight Pending order 1 1.501.05 0.87 Pending order 2 0.79 2.00 0.45 Pending order 3 1.37 1.00 1.09

Each row of the pending orders table 914 represents options for apending order that is not yet assigned to ay workstation 110. Taking thefirst pending order as an example, the workstation-1 weight column is anorder weighting representing assignment of the first pending order tothe first workstation 110. The higher the weight value in thisembodiment, the better the assignment would be. Thus, given the highestweight for the first pending order being for workstation-1 in thisexample, the first pending order should be assigned to the firstworkstation 110. Likewise, the second pending order should be assignedto the second workstation 110 in this example, and the third pendingorder should be assigned to the first workstation 110 in this example.Further description of how the controller 102 determines these next binsvalues for each column in the table is provided below with reference tothe flowchart of FIG. 15 .

FIG. 15 shows a flowchart of a method of calculating the next bin table920 and the pending order table 914 according to an exemplaryembodiment. The steps of FIG. 15 may be performed by the processors 900of the warehouse controller 102 executing the software instructions 908loaded from the storage device 902. The steps of the flowchart are notrestricted to the exact order shown, and, in other configurations, shownsteps may be omitted or other intermediate steps added.

In this embodiment, the calculating and updating of the above-describednext bin and pending orders table is an iterative process that iteratesthrough all workstations 110, all current orders assigned to saidworkstations 110, and all pending orders awaiting assignment.

The process begins at step 1500 upon the occurrence of a calculationstrigger event. In some embodiments, the calculations are automaticallytriggered upon a change of any of a workstation's stock waitlist 918, achange to bin contents in the bin storage facility 114, or a new pendingorder being received by the warehouse controller 102 from the ordersystem. Other trigger events may also be utilized such as time-basedtriggers such as periodically performing the calculations to update thetables once every X minutes or even seconds. Likewise, mode changes tothe system 100 such as changing global weighting categories or inventoryselection strategies may also trigger the process. Combinations of thesetrigger events may also be utilized such as trigger the calculationsonce every five minutes assuming there has been at least one stockwaitlist change, bin contents change, or new pending order.

At step 1502, the warehouse controller 102 selects a workstation 110 toprocess. In some embodiments, the workstations 110 are selected in around robin format such as sequencing through all of the workstations110 one by one in some order.

At step 1504, the warehouse controller 102 determines a minimum bin setfor the stock waitlist 918 of current orders assigned to the workstation110.

As previously mentioned, the stock waitlist 918 refers to all SKUs andtheir respective quantities that still need to be delivered to theworkstation 110 in order to fulfil the orders currently assigned to theworkstation 110. As new orders are assigned to the workstation 110, thestock waitlist 918 grows. As bins are dispatched for delivery to theworkstation 310, the stock waitlist 918 shrinks.

Given the stock waitlist 918 for the workstation 110, at step 1504 thewarehouse controller 102 in this embodiment is determining a minimum binset representing a specific set of bins 300 that if all delivered to theworkstation 110 would enable the picking agent to pick all items on thestock waitlist 918 and thereby complete all orders. As a very simpleexample utilizing the above example bin-to-SKU table 912 shown in Table1, if the stock waitlist 918 for particular workstation 110 included oneitem of SKU-86572 (toothbrush) and one item of SKU-82145 (camera), theminimum bin set determined by the controller at this step would be{Bin55} as this single bin being delivered to the workstation 110 wouldenable all items on the stock waitlist 918 to be picked. Alternatively,if the stock waitlist 918 instead included one item of SKU-82145(camera) and three items of SKU-58741 (toy), the minimum bin setdetermined at this step would be {Bin55, Bin57} as both bins would berequired to be delivered to the workstation 110 to pick these twodifferent SKUs. Further details including a process for determining theminimum bin set for an arbitrary stock waitlist 918 according to anexemplary embodiment is provided below with reference to FIG. 16 .

At step 1506, the warehouse controller 102 calculates a bit weight foreach of the bins in the minimum set. The bin weight in some embodimentsmay be the number of unique individual SKUs contained in the bin thatmatch SKUs found on the stock waitlist 918 for the workstation 110. Inother words, a bin weight of “4” would represent four required SKUs forthe price of one bin retrieval. In another embodiment, the bin weightmeans the total number of items picked regardless of the SKU (many SKUscould have multiple items picked). A higher bin weight means more itemscan be picked per bin presentation. The items picked per binpresentation may also be referred to as a “batch factor”. Higher batchfactors means reduced bin moves required by the robots 108 and thereforebetter efficiency.

In some embodiments, the bin weight for each bin on the minimum set iscalculated by taking into account a plurality of factors that may or maynot include the batch factor. For example, the bin weight may be acombination of the batch factor weighted according to some factor andother characteristics of the bin such as an inventory selection such aslowest inventory (a bin with a smaller number of inventory is given anincreased weight), highest inventory (a bin with a larger number ofinventory is given an increased weight), oldest inventory (a bin witholder inventory is given an increased weight), and newest inventory (abin with newer inventor is given an increased weight). These additionalweighting factors may be useful in certain applications such asweighting bins with older inventory to have higher weights for groceryapplications, or weighting bins with higher numbers of inventory to havehigher weights in order to keep multi-stock bins present in the binstorage facility 114 as long as possible, etc.

Any desired weighting factors and combinations thereof may be utilizedat this step. For instance, the bin weight of a certain bin may alsotake into account the one or more current orders assigned to theworkstation 110 that will be helped toward fulfillment by the bin suchas by maximizing the items picked per bin presentation (IPP). A higherpriority order may result in the bins that will help fulfil that orderreceiving higher bin weights. Likewise, an order that has a longer holdtime (where hold time is the difference in time between when the orderwas received and the current time—i.e., the processing time for theorder) may result in the bins that will help fulfill that orderreceiving higher bin weights.

The algorithm utilized to calculate the bin weights and/or the globalweighting factors may also dynamically change at different times of theday or in response to different events and situations. In an exampleembodiment, a bin weight may be determined utilizing a formula such as:bin_weight=(IPP)*(IPP_factor)+(Hold_time)*(Hold_time_factor)+(Priority)*(Priority_factor)where:

-   -   IPP is the items picked per bin presentation (i.e., batch        factor)    -   IPP_factor is a global weighting factor for IPP across the        system    -   Hold_time is the current processing time for an order that would        be helped by the bin    -   Hold_time_factor is the global weighting factor for hold time        across the system    -   Priority is the order priority (i.e., Low, Normal, Expedite) for        the order that would be helped by the bin    -   Priority_factor is the global weighting factor for priority        across the system

The above-described global weighting factors may change over time. Forexample, at the beginning of a day, the batch factor for a bin maypredominantly determine that bin's weight due to the IP_factor parameterbeing higher. However, as the day goes on and time gets closer andcloser to a shipping deadline or other cut-off time, the hold_timeand/or priority may predominantly determine that bin's weight due to theIP_factor being lowered. In another example, a customer may valueproductivity above all else and therefore weight the batch factorhighest.

The following table shows a simple example of calculating some binweights for bins in an example minimum bin set comprising {Bin53, Bin34}for a workstation 110:

TABLE 4 Example bin weights for bin set Bin ID Bin weight Bin53 1.35Bin34 0.66

At step 1508, the warehouse controller 102 determines the next binaccording to the bin weights calculated at step 1506.

For example, assuming the bin weights shown above in Table 4, thewarehouse controller 102 selects Bin53 as the next bin for thisworkstation 110 since Bin53 has the highest bin weight. Assuming theworkstation 110 being processed is the first workstation 110, this stepcorresponds to the warehouse controller 102 storing the value “Bin53” inthe “Stock waitlist” column of the next bin table for“Workstation-1”—see above Table 2, for example.

At step 1510, the warehouse controller 102 checks to see if theworkstation 110 being processed has an empty put-spot 208 and thusavailability to accept a new order assigned to the workstation 110. Ifthere are no empty put-spots 208 at the workstation 110, controlproceeds to step 1524 to start processing a next workstation 110.However, if there is an empty put-spot 208 and thus availability at theworkstation 110 to accept a new order for picking, control proceeds tostep 1512.

At step 1512, the warehouse controller 102 selects a pending order toprocess. In some embodiments, the pending orders are selected in a roundrobin format such as sequencing through all of the pending orders one byone in some order.

At step 1514, the warehouse controller 102 determines a minimum bin setfor the workstation 110 being processed assuming the pending orderselected at step 1512 is assigned to the workstation 110. Step 1514 isvery similar to that described above for step 1504, except now in step1514 the controller 102 forms the minimum bin set for the workstation110 being a minimum number of bins of the storage facility that wouldneed to be delivered to the workstation 110 to fulfil both therespective one of the pending orders assumed assigned to the workstation110 along with the stock waitlist 918 for the workstation 110.

At step 1516, the warehouse controller 102 calculates an order weight inview of potential assignment to the workstation 110.

The order weights in some embodiments is calculated as (1/Num_bins),where Num_bins is the number of bins that would need to be delivered tothe workstation 110 assuming the pending order is assigned to theworkstation 110. In this way, the order weights of the various pendingorders have an inverse relationship with the number of bins that wouldneed to be delivered to the workstation 110 assuming each pending orderwere assigned to the workstation 110. If a first pending order wouldrequire seven bins to be delivered and a second pending order wouldrequire four bins to be delivered, the order weight (¼=0.25) for thesecond pending order would thus be higher than the order weight(1/7=0.14) for the first pending order.

Other techniques may be utilized in a similar manner, but in thisembodiment, a first pending order receives a higher order weight than asecond pending order when the warehouse controller 102 determines thatassigning the first pending order to the workstation 110 would require alower number of bins 300 to be delivered to the workstation 110 than ifthe second pending order were assigned to the workstation 110.

Similar to as described above for bin weights calculated at step 1506,the order weights may also take into account any combination of globalweighting factors such as order priority (e.g., low, normal, rush),order hold time (e.g., X minutes waiting to be fulfilled), and batchfactor (e.g., number of bins).

In an example embodiment, the order weight for a pending order isdetermined utilizing a formula such as:

order_weight=(1/Num_bins)*(IPP_factor)+(Hold_time)*(Hold_time_factor)+(Priority)*(Priority_factor)

where:

-   -   Num_bins is the number of bins that would need to be delivered        to the workstation 110 assuming the pending order is assigned to        the workstation 110    -   IPP_factor is a global weighting factor for IPP across the        system    -   Hold_time is the current processing time for the order    -   Hold_time_factor is the global weighting factor for hold time        across the system    -   Priority is the order priority (i.e., Low, Normal, Expedite)    -   Priority_factor is the global weighting factor for priority        across the system

As before, these global weighting factors may be dynamically changed bythe controller at different times of the day or in response to differentsituations.

The following table shows a simple example of calculating some orderweights for pending order orders assuming assignment to a particularworkstation 110:

TABLE 5 Example order weights assuming assignment to a particularworkstation 110 Workstation-1 Pending order weight Pending order 1 1.50Pending order 2 0.79 Pending order 3 1.37

At step 1518, the warehouse controller 102 calculates bin weights foreach of the bins 300 in the minimum bin set as determined at step 1514.The bin weights at this step are calculated in the same way as describedabove for step 1506 so a repeated description is omitted for brevity. Itis sufficient to note that at this step 1518 the minimum bin set isassuming a particular pending order was assigned to the workstation 110and thus the bin identifiers in the minimum bin set and also theircorresponding bin weights as calculated at step 1516 may be differentthan the bin weights calculated for the exact same workstation 110 atstep 1506.

At step 1520, the warehouse controller 102 determines the next binaccording to the bin weights calculated at step 1518. The controller inthis embodiment selects the bin with the highest weighting as the nextbin and stores the selected next bin in the appropriate cell of the nextbin table. Assuming that the workstation 110 being processed is thefirst workstation 110, the pending order is “Pending order 1”, and thatBin53 has the highest weight, step 1520 involves the warehousecontroller 102 storing the value “Bin53” in the “Pending order 1” columnof the next bin table for “Workstation-1”—see above Table 2, forexample.

At step 1522, the warehouse controller 102 checks to see whether thereare more pending orders to process for this workstation 110. If no,control proceeds to step 1524 to process a next workstation 110.Otherwise, control returns to step 1512 to select a next pending orderfor processing.

At step 1524, the warehouse controller 102 checks to see whether thereare more workstations 110 to process. If no, the calculation process iscomplete. Otherwise, control returns to step 1502 to select a nextworkstation 110 for processing.

FIG. 16 shows a flowchart of a method of determining a minimum bin setaccording to an exemplary embodiment. The steps of FIG. 16 may beperformed by the processors 900 of the warehouse controller 102executing the software instructions 908 loaded from the storage device902. The steps of the flowchart are not restricted to the exact ordershown, and, in other configurations, shown steps may be omitted or otherintermediate steps added.

The process begins at step 1600. In this embodiment, the flowchart ofFIG. 16 describes how the warehouse controller 102 determines theminimum bin set at each of steps 1504 and 1514 of FIG. 15 . The processiterative in that it loops as described in order to build up a minimumbin set. At this first step 1600, the minimum bin set may start as anempty set { }.

At step 1602, the warehouse controller 102 determines a stock waitlistfor the workstation 110. For instance, when executing the process forthe workstation 110 itself at step 1504, the controller forms the stockwaitlist indicating quantities of one or more required stock-keepingunits (SKUs) still required to be delivered to the workstation 110 inorder to fulfil the one or more current orders assigned to theworkstation 110.

Alternatively, when executing the process assuming a particular pendingorder is assigned to the workstation 110 at step 1514, the controllerforms a potential stock waitlist for the workstation 110 at this step.The potential stock waitlist indicates both quantities of the requiredstock-keeping units (SKUs) still required to be delivered to theworkstation 110 in order to fulfil the one or more current ordersassigned to the workstation 110 (i.e., the workstation's 110 currentstock waitlist 918) along with quantities of the desired stock-keepingunits (SKUs) that would further be required to be delivered to theworkstation 110 if the particular pending order were assigned to theworkstation 110.

At step 1604, the warehouse controller 102 selects a SKU on the stockwaitlist formed at step 1602. In some embodiments, the controllerselects the first SKU on the waitlist the first time this step is passedand then selects a next SKU still remaining on the waitlist each timearound the loop until all SKUs have been removed from the stock waitlistfor the workstation 110.

At step 1606, the warehouse controller 102 queries the bin-to-SKU tablein order to determine a possible bin list for the SKU selected at step1604. In some embodiments, the possible bin list is a list of every bin300 that contains sufficient quantity of the particular SKU. In somesituations, it may be the case that no single bin has sufficientquantity for a particular SKU. In this case, it is possible that theremay need to be multiple bins called to fulfill the stock waitlist for asingle SKU. Multiple bins that must be presented together for a singleSKU in this manner may be grouped in a sub-list contained on thepossible bin list.

At step 1608, the warehouse controller 102 checks to determine whetherall SKUs on the stock waitlist now have their own possible bin list.When no, control returns to step 1604 to select a next SKU at step 1604;alternatively, when all SKUs on the stock waitlist have a possible binlist, control proceeds to step 1610.

At step 1610, the warehouse controller 102 selects a most frequentlyoccurring source bin from the plurality of possible bin lists. Forinstance, assuming there are five SKUs on the waitlist, and assumingBin53 contains sufficient stock of all five SKUs, this will mean thatBin53 will be found five times—once per each SKU's possible bin list. Inthis case, Bin53 would be the most frequently occurring source bin andis selected by the controller.

At step 1612, the warehouse controller 102 adds the most frequentlyoccurring source bin selected at step 1610 to the minimum bin list. Forinstance, continuing the above example where Bin53 is the mostfrequently occurring source bin, the minimum bin set now includes Bin53as follows: {Bin53}.

At step 1614, the warehouse controller 102 removes all SKUs from thestock waitlist that are not met in sufficient quantity by the stock inthe most frequently occurring source bin selected at step 1610. Again,continuing the above example, the since all five required SKU items arefound in sufficient quantity in Bin53, the stock waitlist at step 1614in this example would be empty.

At step 1616, the warehouse controller 102 determines whether the stockwaitlist is empty. When yes, the process is complete and the minimum binset is determined. For instance, continuing the above example, theminimum bin set would be {Bin53}. However, in many cases there will notbe a single bin in the storage facility that contains sufficient stockto fulfil all SKUs on the stock waitlist of the workstation 110. In theevent there are still SKU items remaining on the stock waitlist, controlreturns to step 1604 to select a next SKU item on the stock list.

FIG. 17 shows a flowchart describing how one of the pending orders isselected and assigned to a workstation 110 when a workstation 110 has anavailable put-spot 208, 220 according to an exemplary embodiment. Thesteps of FIG. 17 may be performed by the processors 900 of the warehousecontroller 102 executing the software instructions 908 loaded from thestorage device 902. The steps of the flowchart are not restricted to theexact order shown, and, in other configurations, shown steps may beomitted or other intermediate steps added.

The process of pending order selection and assignment for a particularworkstation 110 begins at step 1700 in response to some triggercondition. In some embodiments, order assignment in the manner of FIG.17 is performed in response to there being at least one robot 108available to service the workstation 110 and the workstation 110 havingat least one available put-spot 208. In this situation. prior tocommanding the robot 108 to fetch a particular bin, the controllerexecutes the pending order assignment to fill the empty put-spot 208 asthis order assignment may affect which bin is best for the robot 108 tofetch. In other embodiments, the process of FIG. 17 is executed when aworkstation 110 has at least one empty put-spot 208, there is a robot108 available to service the workstation 110, and there is at least somethreshold number of pending orders to choose from.

At step 1702, the warehouse controller 102 compares the respective orderweights of the pending orders assuming each is assigned to theparticular workstation 110. For instance, the controller 102 comparesthe order weights for all pending orders in the appropriate workstationcolumn of the pending orders table shown in Table 3.

At step 1704, the warehouse controller 102 selects a highest-weightedpending order and assigns this order to the workstation 110. Forinstance, taking the pending orders table shown in Table 3 and assumingthe particular workstation 110 is “Workstation-1”, the highest-weightedorder is “Pending order 1”. The warehouse controller 102 assigns thisorder to the workstation 110, which involves updating theworkstation-to-order table and also updating the WS-stock-waitlist 918for the first workstation 110. The warehouse controller 102 also sendsinformation regarding the order assignment to the workstation controllerin order to allow the workstation displays devices 204 and put wallindicators 212, 214 to instruct the picking agent to fulfil this order.These instructions are stored in the instructions table 1018 at theworkstation controller 1000.

At step 1706, the warehouse controller 102 determines whether theparticular workstation 110 has another available put-spot 208. When yes,control returns to step 1702 to loop through the process again to selecta next highest weighted order for assignment. Otherwise, if theworkstation 110 is now full (no empty put-spots), the order selectionand assignment process is finished for the workstation 110.

FIG. 18 shows a flowchart describing how a bin is selected for robot 108retrieval after a robot 108 becomes available according to an exemplaryembodiment. The steps of FIG. 18 may be performed by the processors 1002of the warehouse controller 102 executing the software instructions 908loaded from the storage device 902. The steps of the flowchart are notrestricted to the exact order shown, and, in other configurations, shownsteps may be omitted or other intermediate steps added.

The process begins at step 1800 when a robot 108 becomes available. Insome embodiments, a robot 108 is considered available when it is notassigned to move a bin 300 to any particular location, i.e., is notassigned to move bins to/from workstations 110. Further constraints onrobot 108 availability may be include further requiring that the robot108 is operating within normal parameters (i.e., not reporting damage)and is not due for inspection or other routine maintenance, etc.

At step 1802, the warehouse controller 102 triggers an update of thecalculations process by running the flowchart starting at step 1500shown in FIG. 15 . Trigger the calculations to be performed right beforeassigning a robot 108 for a specific bin retrieval job beneficiallyensures the bin selected for retrieval is optimal (e.g., highest weight)given all the possible choices of bins, workstation 110 and orders forwhich the robot 108 could be assigned. In some embodiments, to save timethe calculations are performed in a manner where bin weights, orderweights and next bins that are based on initial conditions such as bincontents and workstation 110 stock waitlists that have not changed sincea last time the calculations were performed are not repeated.

At step 1804, the warehouse controller 102 filters the list ofworkstations 110 to determine which workstations 110 need a binretrieval. In some embodiments, there may a predetermined limit of howmany robots 108 may be simultaneously assigned to service eachworkstation 110. Thus, workstations 110 that already have some thresholdnumber of robots 108 dispatched are not considered for a next availablerobot 108. Likewise, some workstations 110 may simply not need a binretrieval such as due to already having dispatched robots 108 toretrieve all SKU items on the workstation's stock waitlists 918 orhaving no remaining items to order on the stock waitlist 918 due to haveno currently assigned orders to process.

At step 1806, for each workstation 110 in the filtered list from step1804, the warehouse controller 102 compares the next bin weight for thecurrent orders with the next bin weight for the highest weighted pendingorder for that workstation 110. The next bin weight for the currentorders assigned to the workstation 110 was calculated at step 1506 ofFIG. 15 . Likewise, the order weights and next bin weights for thevarious pending orders were calculated respectively at steps 1516 and1518 of FIG. 15 . The warehouse controller 102 at this step compares thehighest bin weight for the current orders with the highest bin weightfor the highest ranking pending order. This comparison is done for eachof the workstations 110 in the filtered list of step 1804.

At step 1808, the warehouse controller 102 selects a target bin anddestination workstation 110 to assign to the available robot 108 basedon the results of step 1806. In some embodiments, the next bin with thehighest ranking out of all the next bin weights compared at step 1806 ischosen as the target bin. This target bin will have such a high rankingwhen associated with either a current order or a pending order of aparticular workstation 110 and this particular workstation 110 isselected by the controller as the destination workstation 110.

At step 1810, the warehouse controller 102 determines whether the targetbin with the highest ranking was taken from the current orders alreadyassigned to the workstation 110 or assuming a pending order was assignedto the workstation 110. In the event the target bin had its weightcalculated at step 1506, this means the target bin is associated with acurrent order of the destination workstation 110 and control simplyproceeds to step 1814 to dispatch the robot 108. However, in the eventthe target bin had its weight calculated at step 1518, this means thetarget bin only obtained such a high weight because of an assumptionthat a particular pending order was assigned to the workstation 110. Inthis case, control proceeds to step 1812 to actually assign that pendingorder to the workstation 110.

At step 1812, the warehouse controller 102 assigns the pending orderdetermined at step 1810 to the destination workstation 110. Similar tostep 1704 described above, in some embodiments this involves updatingthe workstation-to-order table 916 and also updating theWS-stock-waitlist 918 for the particular workstation 110. The warehousecontroller 102 also sends information regarding the order assignment tothe workstation controller 1000 in order to allow the workstationdisplay device s 204 and put-spot indicators 212, 214 to instruct thepicking agent to fulfil the order.

At step 1814, the warehouse controller 102 sends a command to the robot108 to fetch the target bin from the bin storage facility 114 anddeliver the target bin to the destination workstation 110. This step mayalso involve the warehouse controller 102 updating the stock waitlist918 for the destination workstation 110 by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the target bin.

In some embodiments, the warehouse controller 102 continues to considerassigning new pending orders to the destination workstation 110 in orderto maximize batch factor (i.e., items picked per bin presentation)taking into account bins that are scheduled to be delivered to thedestination workstation 110 but the robot(s) 108 dispatched to move thebins have not yet arrived at the workstation 110. Furthermore, in someembodiments, the warehouse controller 102 further considers assigningnew pending orders to the destination workstation 110 even for one ormore bins that are current being picked from at the workstation 110.Leveraging bins 300 that are scheduled to arrive at a particularworkstation 110 or that are already at the workstation 110 furtherincreases efficiency of the system 100 especially in situations when itjust so happens that a new pending order could be directly fulfilled bysaid already-scheduled bins 300. This is particularly beneficial forsingle-SKU orders, which are quite common in e-commerce application.However, the principle can also apply to multi-SKU orders in exactly thesame way.

FIG. 19 shows a flowchart describing how a new order may be directlyassigned to a workstation 110 because the order be fulfilled at thatworkstation 110 without requiring any additional bins 300 to be moved tothe workstation 110 according to an exemplary embodiment. The steps ofFIG. 19 may be performed by the processors 900 of the warehousecontroller 102 executing the software instructions 908 loaded from thestorage device 902. The steps of the flowchart are not restricted to theexact order shown, and, in other configurations, shown steps may beomitted or other intermediate steps added.

The process begins at step 1900 each time a new order is received by thewarehouse controller 102 from an order system 104. For instance, thismay happen each time a customer makes an order via an online website orother e-commerce application.

At step 1902, for each workstation 110 in the system, the warehousecontroller 102 checks to see if the order can be fulfilled by the sametarget bins that are already selected to be delivered to the workstation110. This can be done by the workstation controller simply checking tosee if the SKU quantities desired by the new order are contained in thebins 300 already scheduled to be delivered to each workstation 110(taking into account SKU quantities that are also needed to fulfil thecurrent orders assigned to each workstation 110).

At step 1904, the warehouse controller 102 determines whether directassignment of the order to a particular one of the workstations 110 ispossible. Direct assignment will be possible when the determination ofstep 1902 is positive meaning that the bins scheduled to be delivered toa particular workstation 110 (possibly including one or more bins thatare currently being picked from at the workstation 110) containsufficient stock of the SKUs desired by the new order. Furthermore,another requirement is that the workstation 110 have an availableput-spot 208, 210. For single-SKU orders, this latter requirement for aput-spot may always be true because as soon as the singles put-spot220's tote 210 fills up, the picking agent simply places it on theconveyer belt system 802 and grabs another unused tote 210 to use at thesingle-SKU put-spot 220. For multi-SKU orders, the warehouse controller102 determines whether there is an empty multi-SKU put-spot 208available on the workstation 110's put-wall 206.

If direct assignment is not possible either because the currentlyscheduled bins 300 for all workstations 110 are not sufficient to fulfilthe order, or because no suitable workstation 110 has an empty put-spot208, control proceeds to step 1906 to simply add the new order to thepending orders list 914. Alternatively, if direct assignment ispossible, control proceeds to step 1908.

At step 1906, since directly assignment is not possible, the order isadded to the pending orders table 914.

At step 1908, the warehouse controller 102 directly assigns the neworder to a suitable workstation 110 determined at step 1904 such as byupdating the workstation-to-order 916 table and also updating theWS-stock-waitlist 918 for the particular workstation 110. The warehousecontroller 102 also sends information regarding the order assignment tothe workstation controller in order to allow the workstation displaydevice 204 and put-wall indicators 212, 214 to instruct the pickingagent to fulfil the order

In a sense, orders that are directly assigned in this manner can befulfilled for “free” at the workstation 110 because no additional robot108 bin movements will be required to fulfil the order. As previouslymentioned, bin movements by the robots 108 are expensive operations interms of time and thus it is very beneficial to maximize batch factorsof the items picked per bin presentation and fulfil as many orders aspossible at each workstation 110 from as few bins 300 as possible.Direct order assignment at this step greatly increases efficiency of thesystem 100.

An exemplary benefit of the workstation 110 design of FIG. 2 having onetote for single-SKU orders (Singles) and a put-wall of multi-SKU totesfor multi-SKU orders (Multis) is that combined with the order assignmentand bin selection processes described above is that no sortation isrequired. Here numerous orders with one item (Singles) are picked to atote 210 and once completed are sent directly to packing 804 (orderswith only one item need not be sorted). Furthermore, numerous multi-SKUorders are now simultaneously and discretely picked to their respectivemulti-tote 210, with each multi-tote 210 assigned to an end customerorder. (i.e. the picking agent picks directly to the order tote). Insome embodiments (depending on SKU size) the warehouse controller 102may be configured to deal with twelve multi orders at once for smallerproducts, but others may only have six if they are larger. In this way,orders are already sorted upon the pick (i.e., items are directly sortedto their respective order upon the pick) and once completed can beconveyed directly to shipping. In some embodiments, multi orders areopened and assigned to workstations 110 one by one as completed ordersare completed and conveyed to packing 804.

In some embodiments, the warehouse controller 102 analyzes all of theorders within the pending order queue (pool of orders yet to beprocessed) to find the most ideal batch of orders to be processed intheir designated, individual order totes (discrete number—twelve, in thecase of workstation 110 layout of FIG. 2 ). In some embodiments, theworkstation 110 is initialized by first assigning the highest weightedorder based only on priority and hold time. Each of the remaining elevenmulti orders to be assigned follow the above-described order assignmentprocesses to maximize items picked per presentation/batch factor at eachworkstation 110.

Although there being significant benefits to picking directly tocustomer orders for multiple-SKU orders, other embodiments are alsopossible that still leverage automated sortation systems.

FIG. 20 illustrates a perspective view of dual put-spot pickingworkstations 2000 according to an exemplary embodiment. This workstation2000 design differs by simply having two put-spots: a) a multi-SKUput-spot 2002 for placing items picked for multi-SKU orders, and b) asingle-SKU put-spot 2004 for placing items picked for single-SKU orders.

In this embodiment, the workstation 110 display instructs the pickingagent of which of the two put-spots 2002, 2004 each picked item it to beplaced. This may be done by arrows 2006 or other indicators such as theilluminated lights 214 on the pick-spot itself, for example.

The dual put-spot workstation 2000 design of FIG. 20 is particularlybeneficial for fulfilment centers that have already invested in anautomated sortation system or applications that require a high number ofopen orders to be processed at once. For such fulfillment centers,rather than completely redesigning floor plan layouts and disposing ofexisting, expensive sortation systems, efficiency can instead by greatlyincreased by the incorporation of the bin selection and order assignmentstrategies disclosed herein in combination with a workstation 2000design as set forth in FIG. 20 .

Single-SKU order assignment and picking occurs generally the same asdescribed for the previous embodiments. Items for single-SKU orders arepicked at the workstation 110 at placed into the tote 210 at thesingle-SKU put location 2002. When the tote 210 fills, the tote 210 isplaced on a conveyer belt system 802 for deliver to a packing station810.

Multi-SKU order assignment to workstations 110 also occurs substantiallythe same as described for the previous embodiments but there are acouple changes. Rather than continually assigning orders to workstation110 in a waveless manner as long as there are available put-spots 208 atthe workstation 110, the warehouse controller 102 in this embodimentinstead assigns a predetermined batch of multi-SKU orders of a fixednumber, as per the capabilities of the automated fulfilment system. Theorder assignment can be done in the same way as previously described bysimply treating the put-spots 208 as now being virtual spots rather thanactual spots and by limiting the total number of separate multi-SKUorders to a predetermined number. In this way, the picking jobs arespread amongst the workstations 110 and bin moves are reduced in thesame as previously described. Further, downstream sortation systems candynamically assign the orders contained in the multi-order bin as thispredetermined number of put spots becomes available.

The picking agent at the workstation 2000 picks items for all multi-SKUorders and places them into the tote 210 at the multi-SKU put-spot 2004as per the display screen 204 instructions. When the multi-SKU put-spot2004's tote 210 is full, the picking agent places the tote 210 on theconveyer belt system 802 where it is moved to the sortation stage 2102instead of the packing stage (sese FIG. 21 ). There is no need in thisembodiment for the picking agent to assemble complete multi-SKU ordersfor packing as the automated sortation system takes care of thesortation.

FIG. 21 illustrates plan view of an order fulfillment system 2100including an automated sortation system 2102 for sorting multi-SKU totes210 from the workstation 2000 of FIG. 20 according to an exemplaryembodiment of the present invention. In this embodiment, the orderfulfillment system 2100 includes the automated storage and retrievalsystem 100 of FIG. 1 as a first stage, along with a conveyer belt system802 for moving picked items in totes 210 from the workstations 110 to aselected one of a sortation stage 2104, a packing stage 804 and ashipping stage 806.

As before, the bin storage facility 114 has picking workstations 110 ontwo sides. These workstations 110 may be of the configuration shown inFIG. 20 or may be a combination of both the configurations of FIG. 2 andFIG. 20 . The conveyer belt system 802 is adjacent the picking stationssuch that picking agents working in the stations can easily placecompleted totes 210 onto the conveyer belt system 802. The conveyer beltsystem 802 transports the totes 210 to suitable destinations. Forinstance, completed multi-SKU put spot 2004 totes 210 from theworkstation 2000 of FIG. 20 are transported to the automated sortationsystem 2102. From the automated sortation system 2102, the conveyer beltsystem 802 moves the sorted groups to the packing stage 804. Parcels arethen placed back onto the conveyer belt system 802 where they areautomatically transported to the shipping stage 806.

An exemplary benefit of the workstation 2000 design of FIG. 20 havingone put-spot 2002 for Singles plus one put spot 2004 for Multis is toleverage existing automated sortation systems 2102. Here, orders withone item (Singles) are picked to a tote 210 and once completed sentdirectly to packing 804 (items with only one order need not be sorted).Orders with multiple items (Multis) are picked to another tote 210 andonce all orders are complete the tote 210 is conveyed to a downstreamsortation system 2102 to get sorted to their designated orders beforegetting conveyed to packing 804. Some embodiments may use a discretenumber of orders per multi order batch (i.e. sixty orders) forprocessing. Other times this may be arbitrary depending on workflow.

In some embodiments, the warehouse controller 102 analyzes all of theorders within the pending order queue (pool of orders yet to beprocessed) to find the most ideal batch of orders to be processedtogether in one tote (discrete number—sixty, in one example). In someembodiments, the workstation 110 is initialized by first assigning thehighest weighted order based only on priority and hold time. Each of theremaining fifty-nine orders are assigned following the above-describedorder assignment processes to maximize items picked perpresentation/batch factor at each workstation 110.

In summary of an exemplary embodiment, an automated storage andretrieval system stores multi-stock bins 300 each holding differentstock-keeping units (SKUs). Records dynamically track which SKUs are ineach bin 300. A controller 102 tracks a stock waitlist 918 indicatingquantities of SKUs still required to be delivered to a workstation 110in order to fulfil current orders assigned to the workstation 110. Whena robot 108 is available, the controller selects a multi-stock bin thathas a highest number of unique ones of the required SKUs indicated onthe stock waitlist 918 and commands a robot 108 to fetch and deliver theselected bin to the workstation 110. For new orders, the controller maydetermine if direct assignment can be done to a workstation 110 withoutadditional bins 300 being scheduled. For other pending orders, thecontroller may assume each pending order is assigned to the workstation110 and then pick the order that would require a lowest number of bins300 to be delivered to the workstation 110.

An exemplary benefit of some embodiments of the invention is thatwhenever possible the system optimizes for batch factor meaning that asmay items and orders are fulfilled at the picking workstations 110 witha few as possible bin 300 retrievals being carried out by the robot(s)108 of the automated storage and retrieval system 100. However, thesystem 100 as disclosed is flexible and need not be limited to only oralways selecting bins 300 and assigning orders with a goal to maximizebatch factor. The techniques disclosed herein may all be modified asrequired to still utilize and/or take into account an “inventoryselection strategy” traditionally utilized in the prior art. Inparticular, bin weights and order weights as disclosed herein may takeinto account or otherwise be based on other inventory selectionstrategies besides batch factor. Examples include:

-   -   Lowest inventory—This has an effect that it tries to keep bins        from all having 1 or two items. Bins with fewer items get used        first to free up empty compartments to store new inventory.    -   Highest inventory—This mode has an effect that inventory is        still spread throughout the system. However, has a performance        hit when running low on inventory in that there are lots of bins        with 1 or two items.    -   Oldest inventory—Sometimes called FIFO (first in first out),        this picks the oldest replenished items in the system over        newer. This is needed for grocery applications to limit        spoilage.    -   Newest Inventory—This is LIFO, where the newest items get picked        first. Can be useful if the customer prefers to send the newest        product to the customer, such as if eventually old product will        be rotated out.

In some embodiments, the system 100 and above-described calculationprocess and bin/order assignments are dynamic. Even though a bin 300 maybe previously the next bin optimal for a particular workstation 110 oroperation, other workstations 110 or operations can later select thesame bin if it is later preferred for their tasks. As a result, bins arechecked to see if the bin contents have changed before assignment to aworkstation 110. If the bin has not moved, then this is easy: no change.If the bin was moved, the calculations process checks to see if theinventory change in the bin negatively affects the desired outcome. Ifthe bin previously undergoes a picking operation, where the SKUs removedare not associated with the desired outcome, then the change does notimpact the outcome and the bin can be used. If the SKUs removednegatively impact operation (i.e. inventory depletion causes multiplebins now to be called, batch factor/items picked per bin presentationsuffers), a new bin may need to be selected that optimizes the desiredoutcome. If decant/cycle count operations are performed, the inventorymay stay the same or increase and the bin check is performed to validatethis before committing the bin to a workstation operation.

In some embodiments, as any condition of the system 100 changes thatimpacts efficiency, the warehouse controller 102 continually recalculatethe order processing logic to ensure optimal performance. First, whenoptimal bin sets are calculated and used in downstream operations, thewarehouse controller 102 continually checks if the optimal bin setinventory status has changed. If the inventory levels have changedbefore the bin pick task is assigned to a robot 108, the controllerdynamically verifies that the items picked per bin presentation (batchfactor) is not compromised. If so, the controller recomputes the optimalbins for the order. Second, the controller 102 also recomputes binselection and workstation 110 order batching weights continually as thesystem status changes. As orders are assigned to workstations 110, thecontroller 102 continually recalculates how this impacts the parametersof the orders still within the processing queue to optimize the itemspicked per bin presentation (batch factor) of subsequent orderassignments.

Different aspects of the above described features may be utilized incombination or separate in different embodiments. For example, someembodiments only use bin selection to maximize batch factor as describedherein while assigning orders to workstations 110 only by priority.These embodiments may be beneficial in some application to assignsorders to workstations 110 to ensure that the highest priority items areprocessed first always. Hold time and items picked per bin presentationare not considered when assigning orders to picking workstations 110 insome embodiments. Bin selection is used to calculate the best bin set touse to fulfill the assigned order, however, to maximize items picked perbin presentation, which reduces bin move operations by the robots 108and helps with efficiency.

In another example, both bin selection and order assignment batching areused together in combination. This is the workflow that would be usedduring order assignment to a workstation 110 to maximizeefficiency/performance while meeting service level agreements(SLAs—dictated by priority and hold time). In some embodiments, batchfactor (items picked per bin presentation), hold time and priority areall considered to varying degrees (each can be weighed depending oncustomer preference).

In some embodiments, the controller 102 changes the preference ofpriority, hold time and batch factor depending on the time of day andgoals of the customer. In some embodiments, the controller 102 monitorsIPP and, if it is not high enough and there are no high priority orders,the controller 102 dynamically assigns workers to perform other tasksuntil IPP is increased or cut off times are threatened. If cut off timesare threatened, the controller 102 may change the weight factors tofavor the hold time factor above the batch factor to ensure orders arepicked and packed in time to meet the shipping cut off time. Thesefeatures are beneficial in some embodiments to give warehouse operatorsoperational flexibility to maximize productivity of the system 100 in anapplication-tailored manner.

In some embodiments, a picking workstation 110 allows numerousmulti-orders to be opened and grouped together to achieve the highestitems picked per bin presentation (batch factor), while appendingcomplimentary single orders that boost items picked per bin presentation(batch factor). The algorithm works in tandem to maximize items pickedper bin presentation (batch factor). Exemplary benefits of someembodiments include:

-   -   a) Order batching items picked per bin presentation (batch        factor) gains: prioritize order processing queue and order        assignment to workstations 110 considering the items picked per        bin presentation (batch factor) gain of each order in the queue        when processing alongside open orders at each workstation 110.    -   b) Bin selection items picked per bin presentation (batch        factor) gain: select bins to fulfill order based on maximum        items picked per bin presentation (batch factor) gains by        considering all open orders at a workstation 110 and the        contents of all bins in the ASRS.

In some embodiments, the above benefits allow the system to process moreorders and/or reduce the robot 108 fleet workload accordingly. Otherexamples of advantages achieved by some embodiments include overallincreases of batch factor, increased fulfillment velocity, lowered robot108 fleet requirements, best performance gains achieved when the pendingorder queue is larger (more orders to choose from when optimizing orderbatching leads to higher batch factor), which is ideal for real worlde-commerce. Furthermore, the system is dynamic and adapts to changingconditions of modern commerce.

Embodiments of the system may be implemented in different applicationssuch as e-commerce and microfulfillment applications. As describedabove, as e-commerce orders are low affinity, high SKU variety andcustomer service expectations are increasing, and embodiments hereinhelp maximize efficiency under these conditions. Microfulfillmentrequires a number of smaller, more distributed fulfillment centers andthe efficiency/cost gains in some embodiments disclosed herein ofeliminating the sortation system requirements and reducing robot 108fleet requirements lower the barrier to entry.

Although the invention has been described in connection with preferredembodiments, it should be understood that various modifications,additions and alterations may be made to the invention by one skilled inthe art without departing from the spirit and scope of the invention.For example, although the above-description has focused on a e-commercefor illustration purposes, the present invention is equally applicableto any application that requires automated storage and retrieval systemssuch as warehousing, manufacturing, logistics.

Although the examples above have focused on systems 100 having aplurality of robots 108 for bin retrieval, other embodiments are alsopossible where there is a single robot 108. Likewise, systems in someembodiments may have a single picking workstation 110.

Although one put-wall 206 having a plurality of twelve multi-SKUput-spots 208 was illustrated above in FIG. 2 , each picking workstation110 in other embodiments may have other numbers of put-walls andput-spots thereon. For example, a workstation 110 may have a pluralityof put-walls, each with any desired number of put-spots.

Although the picking agents working in each workstation 110 aredescribed above as being human employees, in other embodiments, thepicking agents may be robots. A combination of different types ofpicking agents, either human or robotic, may be utilized in a singlesystem. The order assignment weight the controller utilized to assignorders to workstations 110 may also take into account the type of items(SKU) and the type of picking agent. Certain SKUs may be better suitedfor human picking agents and certain SKUs may be better suited forrobotic picking agents. This factor can be taken into account inaddition to batch factor, priority, hold time, etc.

Although, the above description has focused on bins stored in the binstorage facility 114 and totes utilized to hold picked items, theseterms are utilized in a very inclusive manner for description purposes.Both the terms bin and tote are utilized hereinto to simply refer tostorage containers. The bins and totes may be implemented using anysuitable type of storage container such bins, totes, carts, bags, boxes,flats, buckets, and other holders. For example, in some cases, ratherthan picking to totes 210 being hard-walled containers as illustrated inFIG. 2 , the totes 210 to which items are picked may be shopping bagsbranded by the store from which the item is being purchased.

The calculation process of FIG. 15 may be modified in some embodimentssuch that, instead of minimum bin sets in steps 1504 and 1512, thewarehouse controller 102 instead determine any desired bin set such asutilizing inventor selection strategy to include specific bins in theset.

As an example, FIG. 16 may be modified to determine a bin set that mayor may not be the minimum bin set by selecting bins that have the mostitems that could be picked regardless of SKU counts. For instance, steps1610 and 1612 may be modified such that the controller looks for a binthat has a highest number of items picked as a best bin. Differentiatingtotal number of items picked from the bin versus SKU count per bin maybe beneficial in some embodiments to maximize productivity. For example,a bin may have only a relatively low number of SKUs, but regardless ahigh number of units picked total so that bin would have a higher weightand be selected at step 1610 and added to the minimum bin set at 1612.Different combinations of selection of best bin at steps 1610 and 1612to either maximize items picked pre bin or SKUs picked per bin may beutilized in different embodiments. Other weighting factors may also beutilized in other embodiments.

The above-described flowchart algorithms and other functionality asdescribed herein may be implemented by software executed by one or moreprocessors operating pursuant to instructions stored on a tangiblecomputer-readable medium such as a storage device. Examples of thetangible computer-readable medium include optical media (e.g., CD-ROM,DVD discs), magnetic media (e.g., hard drives, diskettes), and otherelectronically readable media such as flash storage devices and memorydevices (e.g., RAM, ROM). The computer-readable medium may be local tothe computer executing the instructions, or may be remote to thiscomputer such as when coupled to the computer via a computer networksuch as the Internet. The processors may be included in ageneral-purpose or specific-purpose computer that becomes the warehousecontroller 102, workstation controller or any of the above-describedcontrollers as a result of executing the instructions.

In other embodiments, rather than being software modules executed by oneor more processors, the flowcharts and described-functionality may beimplemented as hardware modules configured to perform theabove-described functions. Examples of hardware modules includecombinations of logic gates, integrated circuits, field programmablegate arrays, and application specific integrated circuits, and otheranalog and digital circuit designs.

Functions of single modules may be separated into multiple units, or thefunctions of multiple modules may be combined into a single unit. Forexample, the warehouse controller 102 and the workstation controller maybe combined in some embodiments to be a single controller. Likewise, thesystem may have other controllers such as a robot controller thathandles the robots 108.

Unless otherwise specified, features described may be implemented inhardware or software according to different design requirements. Inaddition to a dedicated physical computing device, the word “server” mayalso mean a service daemon on a single computer, virtual computer, orshared physical computer or computers, for example. All combinations andpermutations of the above described features and embodiments may beutilized in conjunction with the invention.

What is claimed is:
 1. An automated storage and retrieval system, theautomated storage and retrieval system comprising: a bin storagefacility having a plurality of bins physically stored therein, theplurality of the bins in the bin storage facility being multi-stock binsthat hold stock for a plurality of different stock-keeping units (SKUs);a data storage device having a plurality of records electronicallystored therein, the records indicating a particular one or morestock-keeping units (SKUs) for which there is stock in each bin; atleast one workstation at which a picking agent picks stock from one ormore bins of the bin storage facility delivered to the workstation inorder to fulfill one or more current orders assigned to the workstation;at least one robot for fetching one or more bins from the bin storagefacility and delivering the one or more bins to the workstation; and acontroller configured to: receive a plurality of pending orders from anorder system, each of the pending orders specifying quantities of one ormore desired stock-keeping units (SKUs): track a stock waitlist for theworkstation, the stock waitlist indicating quantities of one or morerequired stock-keeping units (SKUs) still required to be delivered tothe workstation in order to fulfill the one or more current ordersassigned to the workstation; select a bin of the bin storage facility asa selected bin, the selected bin being a multi-stock bin that accordingto the records contains stock for a highest number of unique ones of therequired stock-keeping units (SKUs) indicated on the stock waitlist;send a command to the robot to fetch the selected bin from the binstorage facility and deliver the selected bin to the workstation; andupdate the stock waitlist for the workstation by removing each of therequired stock-keeping units (SKUs) for which there is sufficient stockincluded in the selected bin.
 2. The automated storage and retrievalsystem of claim 1, wherein the controller is further configured to:determine one or more possible source bin sets, wherein, for each uniquestock-keeping unit (SKU) on the stock waitlist for the workstation, thecontroller is configured to determine according to the records apossible source bin set including one or more bins in the bin storagefacility that contain sufficient stock of that unique stock-keeping unit(SKU) as required by the stock waitlist; and select a most frequentlyoccurring source bin across the possible source bin sets as the selectedbin.
 3. The automated storage and retrieval system of claim 1, whereinthe controller is further configured to: determine a workstation bin setrepresenting one or more bins that together contain sufficientquantities of stock of the required stock-keeping units (SKUs) tofulfill the stock waitlist for the workstation; calculate a plurality ofbin weights respectively corresponding to each bin of the workstationbin set; compare the bin weights of the workstation bin set; and send acommand to the robot to fetch a highest-weighted bin from the binstorage facility and deliver the highest-weighted bin to theworkstation.
 4. The automated storage and retrieval system of claim 3,wherein the controller is further configured to calculate at least someof the bin weights such that a first bin has a higher bin weight than asecond bin when the controller determines that delivery of the first binto the workstation would fulfill a greater number of uniquestock-keeping units (SKUs) on the stock waitlist for the workstationthan if the second bin were delivered to the workstation.
 5. Theautomated storage and retrieval system of claim 1, wherein thecontroller is further configured to: calculate a plurality of orderweights respectively corresponding to the pending orders received fromthe order system; compare the order weights of the pending orders;assign a highest-weighted pending order to the workstation; and updatethe stock waitlist for the workstation by adding quantities of each ofthe desired stock-keeping units (SKUs) specified in the highest-weightedpending order; select a second bin of the bin storage facility as asecond selected bin, the second selected bin containing stock for a newgreatest number of unique required stock-keeping units (SKUs) indicatedon the stock waitlist; send a second command to the robot to fetch thesecond selected bin from the bin storage facility and deliver the secondselected bin to the workstation; and update the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the second selected bin.6. The automated storage and retrieval system of claim 5, wherein thecontroller is further configured to: calculate at least some of theorder weights by assuming a respective one of the pending orders isassigned to the workstation and then determining a minimum bin set forthe workstation assuming the respective pending order is assigned to theworkstation; wherein the minimum bin set for the workstation is aminimum number of bins of the bin storage facility that would need to bedelivered to the workstation to fulfill both the respective one of thepending orders assumed assigned to the workstation along with the stockwaitlist for the workstation; and wherein the controller calculates theorder weights for the pending orders such that a first pending order hasa higher order weight than a second pending order when the controllerdetermines that assigning the first pending order to the workstationwould require a lower number of bins to be delivered to the workstationthan if the second pending order were assigned to the workstation. 7.The automated storage and retrieval system of claim 6, wherein thecontroller is further configured to determine the minimum bin set forthe workstation assuming a particular pending order is assigned to theworkstation by an iterative process including a plurality of steps asfollows: forming a potential stock waitlist for the workstation, thepotential stock waitlist indicating both quantities of the requiredstock-keeping units (SKUs) still required to be delivered to theworkstation in order to fulfill the one or more current orders assignedto the workstation along with quantities of the desired stock-keepingunits (SKUs) that would further be required to be delivered to theworkstation if the particular pending order were assigned to theworkstation; determining one or more potential source bin sets, wherein,for each unique stock-keeping unit (SKU) on the potential stockwaitlist, the controller is configured to determine a potential sourcebin set indicating one or more bins in the bin storage facility thatcontain sufficient quantity stock as required by the potential stockwaitlist; selecting a most frequently occurring source bin across thepotential source bin sets and adding the most frequently occurringsource bin to the minimum bin set; removing each unique stock-keeping(SKU) from the potential stock waitlist that is now met by the minimumbin set; and repeating the iterative process until there are no furtherstock-keeping units (SKUs) on the potential stock waitlist. 8.(canceled)
 9. The automated storage and retrieval system of claim 5,further comprising a plurality of workstations, wherein the controlleris further configured to: determine one or more available workstationshaving an available put position, amongst said plurality ofworkstations; calculate the plurality of order weights respectivelycorresponding to the pending orders at each of the availableworkstations, at least some of the order weights being calculated by thecontroller assuming a respective one of the pending orders is assignedto each available workstation and then determining a minimum bin set foreach available workstation assuming the respective pending order isassigned to each available workstation; compare the order weights of thepending orders at each of the available workstations; assign aparticular pending order to a corresponding one of the availableworkstation at which the particular pending order has a highest orderweight; and update the stock waitlist for the corresponding one of theavailable workstations by adding quantities of each of the desiredstock-keeping units (SKUs) specified in the particular pending order.10. The automated storage and retrieval system of claim 1, wherein thecontroller is further configured to: receive a pending single order fromthe order system, the pending single order specifying a quantity of asingle desired stock-keeping unit (SKU); determine whether one or morescheduled bins that have been scheduled to be delivered to theworkstation by the robot include sufficient quantity of the singledesired stock-keeping unit (SKU) to meet both the single order and thestock waitlist for the workstation; and directly assign the pendingsingle order to the workstation when the one or more scheduled binsinclude sufficient quantity of the single desired stock-keeping unit(SKU) to meet both the single order and the stock waitlist for theworkstation.
 11. The automated storage and retrieval system of claim 5,wherein the controller is further configured to: select a third bin ofthe bin storage facility as a third selected bin, the third selected bincontaining stock to fulfill an oldest order currently assigned to theworkstation; send a third command to the robot to fetch the thirdselected bin from the bin storage facility and deliver the thirdselected bin to the workstation; and update the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the third selected bin.12. The automated storage and retrieval system of claim 5, wherein thecontroller is further configured to: select a forth bin of the binstorage facility as a forth selected bin, the forth selected bincontaining stock to fulfill a highest priority order currently assignedto the workstation; send a forth command to the robot to fetch the forthselected bin from the bin storage facility and deliver the forthselected bin to the workstation; and update the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the forth selected bin.13. The automated storage and retrieval system of claim 5, wherein thecontroller is further configured to: select a fifth bin of the binstorage facility as a fifth selected bin according to an inventoryselection strategy; send a fifth command to the robot to fetch the fifthselected bin from the bin storage facility and deliver the fifthselected bin to the workstation; and update the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the fifth selected bin.14. The automated storage and retrieval system of claim 13, whereininventory selection strategy comprises one of lowest inventory, highestinventory, oldest inventory, and newest inventory.
 15. The automatedstorage and retrieval system of claim 1, further comprising a pluralityof robots, wherein the controller is further configured to select anavailable one of the plurality of robots as the robot for sending thecommand to.
 16. The automated storage and retrieval system of claim 1,wherein: each of the current orders assigned to the workstationrespectively represents a complete order to be shipped as a singlepackage to a destination address; and the controller sends one or morecommands to a conveyer belt system to transport a completed totecontaining picked items for each of the current orders assigned to theworkstation to a packing station.
 17. The automated storage andretrieval system of claim 16, wherein: the each of the current ordersassigned to the workstation respectively represents a partial order; andthe controller sends one or more commands to the conveyer belt system totransport the completed tote containing picked items for each of thecurrent orders assigned to the workstation to a sortation system insteadof the packing station.
 18. A controller of an automated storage andretrieval system, the controller comprising one or more processors thatare configured by executed software loaded from a storage medium to:store a plurality of records indicating a particular one or morestock-keeping units (SKUs) for which there is stock in each bin of a binstorage facility, the bin storage facility having a plurality of binsphysically stored therein, the plurality of bins in the bin storagefacility being multi-stock bins that hold stock for a plurality ofdifferent stock-keeping units (SKUs); track a stock waitlist for atleast one workstation, the stock waitlist indicating quantities of oneor more required stock-keeping units (SKUs) still required to bedelivered to the workstation in order to fulfill the one or more currentorders assigned to the workstation, the workstation being a location atwhich a picking agent picks stock from one or more bins of the binstorage facility delivered to the workstation in order to fulfill one ormore current orders assigned to the workstation; select a bin of the binstorage facility as a selected bin, the selected bin being a multi-stockbin that according to the records contains stock for a highest number ofunique ones of the required stock-keeping units (SKUs) indicated on thestock waitlist; send a command to at least one robot to fetch theselected bin from the bin storage facility and deliver the selected binto the workstation; and update the stock waitlist for the workstation byremoving each of the required stock-keeping units (SKUs) for which thereis sufficient stock included in the selected bin.
 19. (canceled)
 20. Anon-transitory computer-readable storage medium comprising processorexecutable instructions, which when executed by one or more processorscause the one or more processors to: store a plurality of recordsindicating a particular one or more stock-keeping units (SKUs) for whichthere is stock in each bin of a bin storage facility, the bin storagefacility having a plurality of bins physically stored therein, theplurality of the bins in the bin storage facility being multi-stock binsthat hold stock for a plurality of different stock-keeping units (SKUs);track a stock waitlist for at least one workstation, the stock waitlistindicating quantities of one or more required stock-keeping units (SKUs)still required to be delivered to the workstation in order to fulfillthe one or more current orders assigned to the workstation, theworkstation being a location at which a picking agent picks stock fromone or more bins of the bin storage facility delivered to theworkstation in order to fulfill one or more current orders assigned tothe workstation; select a bin of the bin storage facility as a selectedbin, the selected bin being a multi-stock bin that according to therecords contains stock for a highest number of unique ones of therequired stock-keeping units (SKUs) indicated on the stock waitlist;send a command to at least one robot to fetch the selected bin from thebin storage facility and deliver the selected bin to the workstation;and update the stock waitlist for the workstation by removing each ofthe required stock-keeping units (SKUs) for which there is sufficientstock included in the selected bin.
 21. A method of controlling a robotin an automated storage and retrieval system, the method comprising:storing a plurality of records indicating a particular one or morestock-keeping units (SKUs) for which there is stock in each bin of a binstorage facility having a plurality of bins physically stored therein,the plurality of the bins in the bin storage facility being multi-stockbins that hold stock for a plurality of different stock-keeping units(SKUs); receiving a plurality of pending orders from an order system,each of the pending orders specifying quantities of one or more desiredstock-keeping units (SKUs); tracking a stock waitlist for at least oneworkstation, the stock waitlist indicating quantities of one or morerequired stock-keeping units (SKUs) still required to be delivered tothe workstation to fulfill one or more current orders assigned to theworkstation, the workstation being a location at which a picking agentpicks stock from one or more bins of the bin storage facility deliveredto the workstation in order to fulfill one or more current ordersassigned to the workstation; selecting a bin of the bin storage facilityas a selected bin, the selected bin being a multi-stock bin thataccording to the records contains stock for a highest number of uniqueones of the required stock-keeping units (SKUs) indicated on the stockwaitlist; sending a command to at least one robot to fetch the selectedbin from the bin storage facility and deliver the selected bin to theworkstation; and updating the stock waitlist for the workstation byremoving each of the required stock-keeping units (SKUs) for which thereis sufficient stock included in the selected bin.
 22. The method ofclaim 21, further comprising: determining one or more possible sourcebin sets, by, for each unique stock-keeping unit (SKU) on the stockwaitlist for the workstation, determining according to the records apossible source bin set including one or more bins in the bin storagefacility that contain sufficient stock of that unique stock-keeping unit(SKU) as required by the stock waitlist; and selecting a most frequentlyoccurring source bin across the possible source bin sets as the selectedbin.
 23. The method of claim 21, further comprising: determining aworkstation bin set representing one or more bins that together containsufficient quantities of stock of the required stock-keeping units(SKUs) to fulfill the stock waitlist for the workstation; calculating aplurality of bin weights respectively corresponding to each bin of theworkstation bin set; comparing the bin weights of the workstation binset; and sending a command to the robot to fetch a highest-weighted binfrom the bin storage facility and deliver the highest-weighted bin tothe workstation.
 24. The method of claim 23, further comprisingcalculating at least some of the bin weights such that a first bin has ahigher bin weight than a second bin when determining that delivery ofthe first bin to the workstation would fulfill a greater number ofunique stock-keeping units (SKUs) on the stock waitlist for theworkstation than if the second bin were delivered to the workstation.25. The method of controlling the robot in the automated storage andretrieval system as claimed in claim 21, wherein the method furthercomprises: calculating a plurality of order weights respectivelycorresponding to the pending orders received from the order system;comparing the order weights of the pending orders; assigning ahighest-weighted pending order to the workstation; and updating thestock waitlist for the workstation by adding quantities of each of thedesired stock-keeping units (SKUs) specified in the highest-weightedpending order; selecting a second bin of the bin storage facility as asecond selected bin, the second selected bin containing stock for a newgreatest number of unique required stock-keeping units (SKUs) indicatedon the stock waitlist; sending a second command to the robot to fetchthe second selected bin from the bin storage facility and deliver thesecond selected bin to the workstation; and updating the stock waitlistfor the workstation by removing each of the required stock-keeping units(SKUs) for which there is sufficient stock included in the secondselected bin.
 26. The method of claim 25, further comprising:calculating at least some of the order weights by assuming a respectiveone of the pending orders is assigned to the workstation and thendetermining a minimum bin set for the workstation assuming therespective pending order is assigned to the workstation; wherein theminimum bin set for the workstation is a minimum number of bins of thebin storage facility that would need to be delivered to the workstationto fulfill both the respective one of the pending orders assumedassigned to the workstation along with the stock waitlist for theworkstation; and calculating the order weights for the pending orderssuch that a first pending order has a higher order weight than a secondpending order when determining that assigning the first pending order tothe workstation would require a lower number of bins to be delivered tothe workstation than if the second pending order were assigned to theworkstation.
 27. The method of claim 26, further comprising determiningthe minimum bin set for the workstation assuming a particular pendingorder is assigned to the workstation by an iterative process including aplurality of steps as follows: forming a potential stock waitlist forthe workstation, the potential stock waitlist indicating both quantitiesof the required stock-keeping units (SKUs) still required to bedelivered to the workstation in order to fulfill the one or more currentorders assigned to the workstation along with quantities of the desiredstock-keeping units (SKUs) that would further be required to bedelivered to the workstation if the particular pending order wereassigned to the workstation; determining one or more potential sourcebin sets, by, for each unique stock-keeping unit (SKU) on the potentialstock waitlist, determining a potential source bin set indicating one ormore bins in the bin storage facility that contain sufficient quantitystock as required by the potential stock waitlist; selecting a mostfrequently occurring source bin across the potential source bin sets andadding the most frequently occurring source bin to the minimum bin set;removing each unique stock-keeping (SKU) from the potential stockwaitlist that is now met by the minimum bin set; and repeating theiterative process until there are no further stock-keeping units (SKUs)on the potential stock waitlist.
 28. (canceled)
 29. The method of claim25, further comprising: determining, from a plurality of workstationscomprised within the automated storage and retrieval system, one or moreavailable workstations having an available put position; calculating theplurality of order weights respectively corresponding to the pendingorders at each of the available workstations, at least some of the orderweights being calculated by assuming a respective one of the pendingorders is assigned to each available workstation and then determining aminimum bin set for each available workstation assuming the respectivepending order is assigned to each available workstation; comparing theorder weights of the pending orders at each of the availableworkstations; assigning a particular pending order to a correspondingone of the available workstation at which the particular pending orderhas a highest order weight; and updating the stock waitlist for thecorresponding one of the available workstations by adding quantities ofeach of the desired stock-keeping units (SKUs) specified in theparticular pending order.
 30. The method of claim 25, furthercomprising: receiving a pending single order from the order system, thepending single order specifying a quantity of a single desiredstock-keeping unit (SKU); determining whether one or more scheduled binsthat have been scheduled to be delivered to the workstation by the robotinclude sufficient quantity of the single desired stock-keeping unit(SKU) to meet both the single order and the stock waitlist for theworkstation; and directly assigning the pending single order to theworkstation when the one or more scheduled bins include sufficientquantity of the single desired stock-keeping unit (SKU) to meet both thesingle order and the stock waitlist for the workstation.
 31. The methodof claim 25, further comprising: selecting a third bin of the binstorage facility as a third selected bin, the third selected bincontaining stock to fulfill an oldest order currently assigned to theworkstation; sending a third command to the robot to fetch the thirdselected bin from the bin storage facility and deliver the thirdselected bin to the workstation; and updating the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the third selected bin.32. The method of claim 25, further comprising: selecting a forth bin ofthe bin storage facility as a forth selected bin, the forth selected bincontaining stock to fulfill a highest priority order currently assignedto the workstation; sending a forth command to the robot to fetch theforth selected bin from the bin storage facility and deliver the forthselected bin to the workstation; and updating the stock waitlist for theworkstation by removing each of the required stock-keeping units (SKUs)for which there is sufficient stock included in the forth selected bin.33. The method of claim 25, further comprising: selecting a fifth bin ofthe bin storage facility as a fifth selected bin according to aninventory selection strategy; sending a fifth command to the robot tofetch the fifth selected bin from the bin storage facility and deliverthe fifth selected bin to the workstation; and updating the stockwaitlist for the workstation by removing each of the requiredstock-keeping units (SKUs) for which there is sufficient stock includedin the fifth selected bin.
 34. The method of claim 33, wherein inventoryselection strategy comprises one of lowest inventory, highest inventory,oldest inventory, and newest inventory.
 35. The method of a claim 21,further comprising selecting an available robot from amongst a pluralityof robots comprised within the automated storage and retrieval system asthe robot for sending the command to.
 36. The method of claim 21,wherein: each of the current orders assigned to the workstationrespectively represents a complete order to be shipped as a singlepackage to a destination address; and wherein the method furthercomprises sending one or more commands to a conveyer belt system totransport a completed tote containing picked items for each of thecurrent orders assigned to the workstation to a packing station.
 37. Themethod of claim 36, wherein: the each of the current orders assigned tothe workstation respectively represents a partial order; and wherein themethod further comprises sending one or more commands to the conveyerbelt system to transport the completed tote containing picked items foreach of the current orders assigned to the workstation to a sortationsystem instead of the packing station.